"""
SteHub 开发服务器启动脚本
"""
import os
import sys
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

# 添加项目根目录到Python路径
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, project_root)

from app import create_app, socketio
from app.config import DevelopmentConfig

def main():
    """启动开发服务器"""
    # 创建应用实例
    app = create_app(DevelopmentConfig)
    
    # 获取配置
    host = os.environ.get('HOST', '127.0.0.1')
    port = int(os.environ.get('PORT', 5000))
    debug = os.environ.get('FLASK_DEBUG', 'true').lower() == 'true'
    
    print(f"🚀 启动 SteHub 开发服务器...")
    print(f"📍 访问地址: http://{host}:{port}")
    print(f"🔧 调试模式: {'开启' if debug else '关闭'}")
    print(f"💾 运行模式: {app.config['RUN_MODE']}")
    print(f"📊 数据库: {app.config['SQLALCHEMY_DATABASE_URI']}")
    print("=" * 50)
    
    try:
        # 使用SocketIO运行应用（支持WebSocket）
        socketio.run(
            app,
            host=host,
            port=port,
            debug=debug,
            use_reloader=debug,
            log_output=True
        )
    except KeyboardInterrupt:
        print("\n👋 服务器已停止")
    except Exception as e:
        print(f"❌ 服务器启动失败: {e}")
        sys.exit(1)

if __name__ == '__main__':
    main()